package com.atguigu.tingshu.common.util;

import cn.hutool.core.io.FileUtil;
import lombok.SneakyThrows;
import org.joda.time.DateTime;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

/**
 * @author xiongkunYang
 */
public class UploadFileUtil {

    /**
     * 文件上传到临时路径。
     * 方法接收两个参数：第一个参数是临时路径的根目录，第二个参数是要上传的文件对象。
     * 该方法会将文件保存到指定的临时路径中，并返回该文件在临时路径中的完整路径。
     */
    @SneakyThrows
    public static String uploadTempPath(String tempPath, MultipartFile file) {
        if (file == null) {
            return "";
        }

        String date = new DateTime().toString("yyyyMMdd");
        String filePath = tempPath + File.separator + date;
        File curFile = new File(filePath);

        if (!curFile.exists()) {
            boolean isCreated = curFile.mkdirs();
            if (!isCreated) {
                throw new RuntimeException("Failed to create directory: " + curFile.getAbsolutePath());
            }
        }

        filePath = filePath + File.separator + file.getOriginalFilename();
        file.transferTo(new File(filePath));
        return filePath;
    }

    /**
     * 根据文件在本地的完整路径删除临时文件
     * @param uploadTempPath 文件在本地的完整路径
     */
    public static void deleteTempFile(String uploadTempPath) {
        FileUtil.del(uploadTempPath);
    }
}
